#include<cstdio>
#include<cstring>
using namespace std;
int T,n;
int a[1000005],b[1000005];
bool vis[500005],flag;
char op[1000005];
inline void dfs(int x,int l,int r){
//	if(T==97){
//		for(int i=1;i<=2*n;++i)
//			if(vis[i])
//				printf("%d ",i);
//		puts("");
//		printf("%d %d\n",a[l],a[r]);
//	}
	if(x==2*n+1){
		flag=1;
		for(int i=1;i<=2*n;++i)
			printf("%c",op[i]);
		puts("");
		return;
	}
	if(x<=n){
		if(a[l]<=a[r]&&!vis[a[l]]){
			vis[a[l]]=1;
			b[x]=a[l];
			op[x]='L';
			dfs(x+1,l+1,r);
			if(flag) return;
			vis[a[l]]=0;
		}
		if(!vis[a[r]]){
			vis[a[r]]=1;
			b[x]=a[r];
			op[x]='R';
			dfs(x+1,l,r-1);
			if(flag) return;
			vis[a[r]]=0;
		}
		if(!vis[a[l]]){
			vis[a[l]]=1;
			b[x]=a[l];
			op[x]='L';
			dfs(x+1,l+1,r);
			if(flag) return;
			vis[a[l]]=0;
		}
	}
	else{
		if(a[l]==b[2*n-x+1]){
			op[x]='L';
			b[x]=a[l];
			dfs(x+1,l+1,r);
			if(flag) return;
		}
		if(a[r]==b[2*n-x+1]){
			op[x]='R';
			b[x]=a[r];
			dfs(x+1,l,r-1);
			if(flag) return;
		}
	}
}
int main(){
	freopen("palin.in","r",stdin);
	freopen("palin.out","w",stdout);
	scanf("%d",&T);
	while(T--){
		memset(vis,0,sizeof(vis));
		memset(b,0,sizeof(b));
		memset(op,'\0',sizeof(op));
		scanf("%d",&n);
		for(int i=1;i<=2*n;++i)
			scanf("%d",a+i);
		flag=0;
		dfs(1,1,2*n);
		if(!flag)
			printf("-1\n");
	}
	return 0;
}
